package com.gopay.common.domain.bank.tpas;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Table;
import javax.persistence.Version;

import com.gopay.common.domain.BaseEntity;

@Entity
@Table(name = "BIS_TPAS_MAIN_ORDER")
public class TpasOrder extends BaseEntity {
    private static final long serialVersionUID = 3112770208270922229L;
        /**
         * 国付宝系统订单号（系统内唯一订单标识）
         */
        @Column(name = "GOPAY_ORDER_ID")
        private String orderId;
        /**
         * 银行订单号
         */
        @Id
        @Column(name = "GOPAY_OUT_ORDER_ID")
        private String outOrderId;
        /**
         * 交易类型
         */
        @Column(name = "PROD_CODE")
        private String prodCode;

        
        /**
         * 产品子代码
         */
        @Column(name = "PROD_AMOUNT")
        private String prodAmount;
        /**
         * 产品子代码
         */
        @Column(name = "PROD_PERVALUE")
        private String prodPervalue;
        /**
         * 产品子代码
         */
        @Column(name = "CP_DEBIT_AMOUNT")
        private String cpDebitAmount;

        /**
         * 交易渠道
         */
        @Column(name = "INTRFACE_CHANNEL_CODE")
        private String intrfaceChannelCode;

        /**
         * 发往银行时间
         */
        @Column(name = "SEND_CP_TM")
        private java.util.Date sendCpTm;
        
        /**
         * 是否锁定
         * 
         * 1 - 是 0 - 否
         */
        @Column(name = "IS_LOCK", nullable = false, precision = 1, scale = 0)
        private int lock;
        
        /**
         * 订单状态码
         * 
         * 
         * 00- 进行中
         * 
         * 02- 银行通知订单成功 03- 定时对单成功 04- 手工对单成功
         * 
         * 91- 银行通知订单失败 92- 银行通知验签失败 93- 金额比对异常 94- 作废 95- 超时
         * 
         * 99- 其他失败
         */
        @Column(name = "ORDER_STATUS")
        private java.lang.String orderStatus;

        /**
         * 服务商返回码
         */
        @Column(name="CP_RESP_CODE")
        private java.lang.String cpRespCode;

        /**
         * 服务商订单号
         */
        @Column(name="CP_ORDER_ID")
        private java.lang.String cpOrderId;

        /**
         * 交易处理完成时间
         */
        @Column(name="TRAN_FINISH_TIME")
        private java.util.Date tranFinishTime;

        /**
         * 对单次数总计
         */
        @Column(name="TOTAL_CHECK_TIMES")
        private java.lang.Integer totalCheckTimes;
        /**
         * 最后对单时间
         */
        @Column(name="LAST_CHECK_BILL_TIME")
        private java.util.Date lastCheckBillTime;

        /**
         * 乐观锁版本号
         */
        @Version
        @Column(name="VERSION")
        private java.lang.Integer version;

        /**
         * 创建时间
         */
        @Column(name="CREATED_TS")
        private java.util.Date createdTs;

        /**
         * 记录最后修改时间
         */
        @Column(name="LAST_UPD_TS")
        private java.util.Date lastUpdTs;

        /**
         * 最后修改交易码
         */
        @Column(name="LAST_UPD_TRANCODE")
        private java.lang.String lastUpdTrancode;

        /**
         * 系统预留字段1
         */
        @Column(name="REMARK3")
        private java.lang.String remark3;

        /**
         * 系统预留字段2
         */
        @Column(name="REMARK2")
        private java.lang.String remark2;

        public int getLock() {
            return lock;
        }

        public void setLock(int lock) {
            this.lock = lock;
        }

        public String getOrderId() {
            return orderId;
        }

        public void setOrderId(String orderId) {
            this.orderId = orderId;
        }

        public String getOutOrderId() {
            return outOrderId;
        }

        public void setOutOrderId(String outOrderId) {
            this.outOrderId = outOrderId;
        }

        public String getProdCode() {
            return prodCode;
        }

        public void setProdCode(String prodCode) {
            this.prodCode = prodCode;
        }

        public java.lang.String getOrderStatus() {
            return orderStatus;
        }

        public void setOrderStatus(java.lang.String orderStatus) {
            this.orderStatus = orderStatus;
        }

        public java.util.Date getTranFinishTime() {
            return tranFinishTime;
        }

        public void setTranFinishTime(java.util.Date tranFinishTime) {
            this.tranFinishTime = tranFinishTime;
        }

        public java.lang.Integer getTotalCheckTimes() {
            return totalCheckTimes;
        }

        public void setTotalCheckTimes(java.lang.Integer totalCheckTimes) {
            this.totalCheckTimes = totalCheckTimes;
        }

        public java.util.Date getLastCheckBillTime() {
            return lastCheckBillTime;
        }

        public void setLastCheckBillTime(java.util.Date lastCheckBillTime) {
            this.lastCheckBillTime = lastCheckBillTime;
        }

        public java.lang.Integer getVersion() {
            return version;
        }

        public void setVersion(java.lang.Integer version) {
            this.version = version;
        }

        public java.util.Date getCreatedTs() {
            return createdTs;
        }

        public void setCreatedTs(java.util.Date createdTs) {
            this.createdTs = createdTs;
        }

        public java.util.Date getLastUpdTs() {
            return lastUpdTs;
        }

        public void setLastUpdTs(java.util.Date lastUpdTs) {
            this.lastUpdTs = lastUpdTs;
        }

        public java.lang.String getLastUpdTrancode() {
            return lastUpdTrancode;
        }

        public void setLastUpdTrancode(java.lang.String lastUpdTrancode) {
            this.lastUpdTrancode = lastUpdTrancode;
        }

        public java.lang.String getRemark3() {
            return remark3;
        }

        public void setRemark3(java.lang.String remark3) {
            this.remark3 = remark3;
        }

        public java.lang.String getRemark2() {
            return remark2;
        }

        public void setRemark2(java.lang.String remark2) {
            this.remark2 = remark2;
        }

        public String getProdAmount() {
			return prodAmount;
		}

		public void setProdAmount(String prodAmount) {
			this.prodAmount = prodAmount;
		}

		public String getProdPervalue() {
			return prodPervalue;
		}

		public void setProdPervalue(String prodPervalue) {
			this.prodPervalue = prodPervalue;
		}

		public String getCpDebitAmount() {
			return cpDebitAmount;
		}

		public void setCpDebitAmount(String cpDebitAmount) {
			this.cpDebitAmount = cpDebitAmount;
		}

		public String getIntrfaceChannelCode() {
            return intrfaceChannelCode;
        }

        public void setIntrfaceChannelCode(String intrfaceChannelCode) {
            this.intrfaceChannelCode = intrfaceChannelCode;
        }

        public java.util.Date getSendCpTm() {
            return sendCpTm;
        }

        public void setSendCpTm(java.util.Date sendCpTm) {
            this.sendCpTm = sendCpTm;
        }

        public java.lang.String getCpRespCode() {
            return cpRespCode;
        }

        public void setCpRespCode(java.lang.String cpRespCode) {
            this.cpRespCode = cpRespCode;
        }

        public java.lang.String getCpOrderId() {
            return cpOrderId;
        }

        public void setCpOrderId(java.lang.String cpOrderId) {
            this.cpOrderId = cpOrderId;
        }
       
}
